\chapter{Matériel pour le développement}
\paragraph{}
Dans ce chapitre nous passerons rapidement en revue le matériel sur lequel
Xenomai a été installé.
\paragraph{}
Afin de développer et surtout de pouvoir tester convenablement le projet, un PC
dédié a été utilisé. Le développement lui-même pourrait s'effectuer sur une machine
virtuelle. Toutefois, puisqu'une machine virtuelle tourne sur un autre OS, les
ressources CPU sont partagées. Ceci poserait vraisemblablement des
problèmes puisque pour vérifier la périodicité et le respect des échéances, nous devons
être sûrs que le processeur est totalement dédié au système temps réel et que ce
dernier ne peut être préempté par le système hôte.

\section{Processeur VIA}
\paragraph{}
Le développement et les tests se sont effectués sur un mini PC, l'ARTiGO Barebone
Systems de VIA. Ce PC est doté d'une carte Pico ITX avec un processeur Via C7
ayant une fréquence de 1GHz.
\begin{figure}[h!]
 \centering
 \includegraphics[scale=0.5]{../Imgs/artigo.jpg}
 % artigo.jpg: 0x0 pixel, 300dpi, 0.00x0.00 cm, bb=
 \caption{Photo de l'ARTiGO de VIA}
 \label{fig:artigo}
\end{figure}
\FloatBarrier

\paragraph{}
Ce processeur a été choisi car il supporte le jeux d'instruction X86,
permettant ainsi d'utiliser de nombreux systèmes mais aussi de nombreuses applications
existantes.
\paragraph{}
De plus, ce processeur, par rapport à un X86 d'Intel possède 2
PLL\footnote{Phase-locked loop}.\\ 
Une PLL est utilisée \textit{afin d'asservir une fréquence de sortie sur un
multiple de la fréquence d'entrée}\cite{WikipediaPLL:website}.\\
En d'autres termes, elle sert à régler la fréquence du CPU.\\
Lorsque le processeur change de fréquence, cette PLL doit se stabiliser à la
nouvelle fréquence. Ceci peut prendre un temps non négligeable. Ainsi, ce
processeur permet de passer d'une PLL à l'autre et ainsi de changer de fréquence
presque instantanément.
\begin{figure}[h!]
 \centering
 \includegraphics[scale=0.6]{../Imgs/DoublePLL.png}
 % DoublePLL.png: 0x0 pixel, 300dpi, 0.00x0.00 cm, bb=
 \caption{Double PLL VS Simple PLL}
 \label{fig:DoublePLL}
\end{figure}
\FloatBarrier
\paragraph{}
Notons tout de même que selon les informations du vendeur \ref{infoVIA} le processeur VIA peut
changer instantanément de fréquence mais de tension uniquement 16mV toutes les 15$\mu$s. Pour passer
de 1000Mhz à 800Mhz (les 2 fréquences supportées par le VIA C7), le changement devrait être immédiat
puisqu'une fréquence plus basse peut s'exécuter avec une tension plus haute que celle préconisée.
Par contre la réciproque est fausse et pour passer de 800Mhz à 1000Mhz, il faudra attendre environ
50$\mu$s. 
\paragraph{}
Cette technologie, trouvera tout son sens dans ce projet. Effectivement, avec elle, il sera possible
de changer de fréquence lorsque nous aurons
à disposition des intervalles plus courtes, puisque le temps du changement de
fréquence n'est plus à soustraire à l'intervalle de temps libre. En outre, nous gagnerons aussi en
simplicité de codage puisque comme cité
précédemment nous ne prendrons pas en compte le temps du changement de
fréquence.
\paragraph{}
Il faut aussi noter qu'avec 2 PLL nous pourrons préparer en avance
seulement une fréquence additionnelle (pour un AVR32 p.ex. puisque le VIA C7 ne supporte que 2
fréquences). Ainsi, dans l'hypothèse où nous décidions de diviser
la
fréquence par 4, alors que la PLL en attente est à la fréquence maximale
divisée par 2, il serait nécessaire d'attendre le changement de fréquence ou
alors continuer l'exécution de la tâche sur la PLL tournant à vitesse maximum
jusqu'à ce que la 2ème PLL soit prête. Il serait évidemment nécessaire
d'effectuer des calculs pour savoir laquelle des 2 solutions est la plus
efficace.

\paragraph{}
Nous verrons dans le chapitre suivant les détails techniques de
l'implémentation de l'algorithme et de la recherche des éléments nécessaires.
